import { Component } from "./Component";

/**
 * 所有Pool的基类，继承Component
 * 里面封装了所有Pool的通用函数
 */ 
const {ccclass} = cc._decorator;
@ccclass
export class Pool<T = any> extends Component<T> {
	/**初始化节点池需要提前实例化节点的个数 */
	static initNum = 1;

	/**从节点池获取本节点"之前"执行的回调函数 */
	protected onGet() {}

	/**将本节点放回节点池"之前"执行的回调函数 */
	protected onPut() {
		//通用还原操作
		let node = this.node;
		node.stopAllActions();
		node.setScale(1);
		node.angle = 0;
		node.setPosition(0,0);
		node.opacity = 255;
		node.parent = null;
	}  
}